/**
 * Copyright (c) 2002 qc&Bull Co.,LTD
 * All right reserved.
 */
package cn.zxd.pub;

import cn.zxd.util.*;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;



/**
 * <p>
 * Title: Webҵ��ϵͳ
 * </p>
 * <p>
 * Description:
 * </p>
 * <p>
 * Copyright: Copyright (c) 2002
 * </p>
 * <p>
 * Company: qc&Bull
 * </p>
 * @author YT
 * @version 1.0
 */
public class PubFun1
{
	public PubFun1()
	{}

	/**
	 * ���Ժ���
	 * @param args String[]
	 */
	public static void main(String[] args)
	{
		PubFun1 pf1 = new PubFun1();
		System.out.println(pf1.getCbSNO());
		System.out.println(pf1.getBqNO());
		System.out.println(pf1.getLpSNO());
	}
	private static SysMaxNo sysMaxNo = null;
	/**
	 * <p>
	 * ������ˮ�ŵĺ���
	 * <p>
	 * <p>
	 * ������򣺻������� ������ У��λ ���� ��ˮ��
	 * <p>
	 * <p>
	 * 1-6 7-10 11 12-13 14-20
	 * <p>
	 * @param cNoType Ϊ��Ҫ���ɺ��������
	 * @param cNoLimit Ϊ��Ҫ���ɺ������������
	 * @return ���ɵķ�����������ˮ�ţ��������ʧ�ܣ����ؿ��ַ���""
	 */


	public static String CreateMaxNo(String cNoType, String cNoLimit)
	{
		try
		{
			if (sysMaxNo == null)
			{
				// ��̬������
				String className = "SysMaxNo" + SysConst.MAXNOTYPE;
				Class cc = Class.forName(className);
				sysMaxNo = (SysMaxNo) (cc.newInstance());
			}
			else
			{

			}
			String resultno = sysMaxNo.CreateMaxNo(cNoType, cNoLimit);
			if (resultno.endsWith("null"))
			{
				return "";
			}
			else
			{
				return resultno;
			}
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
			return null;
		}
	}

	/**
	 * ������ˮ�ŵĺ��� ������򣺻������� ������ У��λ ���� ��ˮ�� 1-6 7-10 11 12-13 14-20
	 * @param cNoType String Ϊ��Ҫ���ɺ��������
	 * @param cNoLimit String Ϊ��Ҫ���ɺ������������
	 * @param tVData VData
	 * @return String ���ɵķ�����������ˮ�ţ��������ʧ�ܣ����ؿ��ַ���""
	 */
	public static String CreateMaxNo(String cNoType, String cNoLimit, VData tVData)
	{
		try
		{
			if (sysMaxNo == null)
			{
				// ��̬������
				String className = "com.bull.iss.pubfun.SysMaxNo" + SysConst.MAXNOTYPE;
				Class cc = Class.forName(className);
				sysMaxNo = (SysMaxNo) (cc.newInstance());
			}
			else
			{

			}
			String resultno = sysMaxNo.CreateMaxNo(cNoType, cNoLimit, tVData);
			if (resultno.endsWith("null"))
			{
				return "";
			}
			else
			{
				return resultno;
			}
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
			return null;
		}
	}
	/**
	 * ���ܣ�����ָ�����ȵ���ˮ�ţ�һ����������һ����ˮ
	 * @param cNoType String ��ˮ�ŵ�����
	 * @param cNoLength int ��ˮ�ŵĳ���
	 * @return String ���ز�������ˮ����
	 */
	public static String CreateMaxNo(String cNoType, int cNoLength)
	{
		try
		{
			if (sysMaxNo == null)
			{
				// ��̬������
				String className = "com.bull.iss.pubfun.SysMaxNo" + SysConst.MAXNOTYPE;
				Class cc = Class.forName(className);
				sysMaxNo = (SysMaxNo) (cc.newInstance());
			}
			else
			{

			}
			String resultno = sysMaxNo.CreateMaxNo(cNoType, cNoLength);
			if (resultno.endsWith(("null")))
			{
				return "";
			}
			else
			{
				return resultno;
			}
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
			return null;
		}
	}

//	/**
//	 * �õ�calculator��������SQL��䡣ԭ����calculator��ֻ�ܷ���aCalCode�������SQL���
//	 * ��һ��ִ�н������������õ�����aCalCode�������ʵ�ʵ�SQL��䡣
//	 * @param strSql String ��Ҫ������SQL���
//	 * @param calculator Calculator �Ѿ������˻�������Ԫ�ص�calculator����
//	 * @return String �������SQL��䡣��������κδ��󣬽����׳��쳣
//	 * @throws Exception
//	 */
//	public static String getSQL(String strSql, Calculator calculator) throws Exception
//	{
//		LMCalModeDB tLMCalModeDB = new LMCalModeDB();
//
//		// �����Ž�������Ĵ���
//		String strSQL = strSql.replace('\'', '@');
//		// ��ѯ��ʱ�����Ǻܺõ�ѡ��
//		strSQL = "select ''" + strSQL + "'' from dual";
//
//		tLMCalModeDB.setCalCode("XXX");
//		tLMCalModeDB.setRiskCode("0");
//		tLMCalModeDB.setType("F");
//		tLMCalModeDB.setCalSQL(strSQL);
//
//		if (!tLMCalModeDB.update())
//		{
//			throw new Exception("���ü��㹫ʽʱ����");
//		}
//
//		calculator.setCalCode("XXX");
//		strSQL = calculator.calculate();
//
//		if (strSQL.equals(""))
//		{
//			throw new Exception("����SQL���ʱ����");
//		}
//
//		return strSQL.replace('@', '\'');
//	}

	/**
	 * ͨ����������ڿ��Եõ������µļ����һ��ͼ������һ������� author: LH
	 * <p>
	 * <b>Example: </b>
	 * <p>
	 * <p>
	 * calFLDate("2003-5-8") returns 2003-4-26 2003-5-25
	 * <p>
	 * @param tDate String ��ʼ���ڣ�(String,��ʽ��"YYYY-MM-DD")
	 * @return String[] ���¿�ʼ�ͽ������ڣ�����String[2]
	 */
	public static String[] calFLDate(String tDate)
	{
		String[] MonDate = new String[2];
		String asql = "select startdate,enddate from LAStatSegment where stattype='5' and startdate<='" + tDate
				+ "' and enddate>='" + tDate + "'";
		ExeSQL aExeSQL = new ExeSQL();
		SSRS aSSRS = new SSRS();
		aSSRS = aExeSQL.execSQL(asql);
		MonDate[0] = aSSRS.GetText(1, 1);
		MonDate[1] = aSSRS.GetText(1, 2);

		return MonDate;
	}

	//	��� ���ݱ�����ˮ
	public static String getDataSendSNO(){
		SysMaxNoPicch tSysMaxNoPicch = new SysMaxNoPicch();
		return tSysMaxNoPicch.CreateMaxNo("UPLOADSNO", "SN");
	}
	//��� �б��ڵ����ˮ
	public static String getCbSNO(){
		SysMaxNoPicch tSysMaxNoPicch = new SysMaxNoPicch();
		return tSysMaxNoPicch.CreateMaxNo("CB", "SN");
	}
	//��� ��ȫ�ڵ����ˮ
	public static String getBqNO(){
		SysMaxNoPicch tSysMaxNoPicch = new SysMaxNoPicch();
		return tSysMaxNoPicch.CreateMaxNo("BQ", "SN");
	}
	//��� ����ڵ����ˮ
	public static String getLpSNO(){
		SysMaxNoPicch tSysMaxNoPicch = new SysMaxNoPicch();
		return tSysMaxNoPicch.CreateMaxNo("LP", "SN");
	}
	//�б������𵥹켣��ˮ
	public static String getPOLICYSINGLETRACKSNO(){
		SysMaxNoPicch tSysMaxNoPicch = new SysMaxNoPicch();
		return tSysMaxNoPicch.CreateMaxNo("POLICYSINGLESNO", "SN");
	}
	//��ȫ�����𵥹켣��ˮ
	public static String getENDORSINGLETRACKSNO(){
		SysMaxNoPicch tSysMaxNoPicch = new SysMaxNoPicch();
		return tSysMaxNoPicch.CreateMaxNo("ENDORSINGLESNO", "SN");
	}
	//���ⷵ���𵥹켣��ˮ
	public static String getCLAIMSINGLETRACKSNO(){
		SysMaxNoPicch tSysMaxNoPicch = new SysMaxNoPicch();
		return tSysMaxNoPicch.CreateMaxNo("CLAIMSINGLESNO", "SN");
	}
	//����ת������
	public static  Calendar str2Calendar(String strDate){
		if(strDate!=null){
			SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
			Calendar calander = new GregorianCalendar();
			try {
				calander.setTime(dateFormatter.parse(strDate));
				return calander;
			} catch (ParseException e1) {
				e1.printStackTrace();
				return null;
			}
		}else {
			return null;
		}

	}

}
